/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ig.export.util;

import java.awt.Component;
import java.awt.Container;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFormattedTextField;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;

/**
 *
 * @author usuario
 */
public class IGExport {

    public static void habilitaControles(Component[] cs, boolean valor) {
        for (int i = 0; i < cs.length; i++) {
            Component _c = cs[i];
            if ( ((Component) _c).getName()!=null && ((Component) _c).getName().equalsIgnoreCase("NO_ALL") ){
                continue;
            }
            if (_c instanceof JFormattedTextField) {
                ((JFormattedTextField) _c).setEnabled(valor);
            }
            if (_c instanceof JTextArea) {
                ((JTextArea) _c).setEnabled(valor);
            }
            if (_c instanceof javax.swing.JRadioButton) {
                ((javax.swing.JRadioButton) _c).setEnabled(valor);
            } else if (_c instanceof JTextField) {
                ((JTextField) _c).setEnabled(valor);
            } else if (_c instanceof javax.swing.JTabbedPane) {
                habilitaControles(getControles((javax.swing.JTabbedPane) _c), valor);
            } else if (_c instanceof javax.swing.JSplitPane) {
                habilitaControles(getControles((javax.swing.JSplitPane) _c), valor);
            } else if (_c instanceof JPanel) {
                habilitaControles(getControles((JPanel) _c), valor);
            } else if (_c instanceof javax.swing.JViewport) {
                habilitaControles(getControles((javax.swing.JViewport) _c), valor);
            } else if (_c instanceof JComboBox) {
                ((JComboBox) _c).setEnabled(valor);
            } else if (_c instanceof JCheckBox) {
                ((JCheckBox) _c).setEnabled(valor);
            } else if (_c instanceof JScrollBar) {
                ((JScrollBar) _c).setEnabled(valor);
            } else if (_c instanceof JButton) {
                ((JButton) _c).setEnabled(valor);
            } else if (_c instanceof JList) {
                ((JList) _c).setEnabled(valor);
            } else if (_c instanceof JComboBox) {
                ((JComboBox) _c).setEnabled(valor);
            } else if (_c instanceof JTable) {
                ((JTable) _c).setEnabled(valor);
            } else if (_c instanceof javax.swing.JPopupMenu) {
                habilitaControles(getControles((javax.swing.JPopupMenu) _c), valor);
            } else if (_c instanceof javax.swing.JMenuItem) {
                ((javax.swing.JMenuItem) _c).setEnabled(valor);
            } else if (_c instanceof JScrollPane) {
                JScrollPane jsp = (JScrollPane) _c;
                jsp.setEnabled(valor);
                habilitaControles(getControles((JScrollPane) _c), valor);
            } else if (_c instanceof JFormattedTextField) {
                ((JFormattedTextField) _c).setEnabled(valor);
            }
        }
    }
    
    public static Component[] getControles(Container c) {
        if (c != null) {
            return c.getComponents();
        }
        return new Component[0];
    }    
}
